Communications networks typically are configured with a plurality of nodes connected together by a plurality of links. A path through the network from one node to another may take a variety of different links and may pass through a variety of different nodes as there are often many ways to get from one node to another. A certain path will often be chosen according to various metrics that give different paths varying degrees of desirability. Each of the links has associated metrics used in determining the frequency with which that link is used in a path from one node in the network to another node. These metrics for choosing certain paths and links may include such factors as the speed of the link, the amount of traffic or the available bandwidth of the link, the cost of operating the link, the time delay for the link, the total length or time taken to travel the entire path, etc.
A path between nodes will be selected according to an optimum selection of one or more of the above metrics. As a result, the nodes and links with the most optimum metrics will be continuously selected. Consequently, these nodes and links will carry a majority of the traffic on the network causing them to easily become congested.
There may be multiple routes from one node to another node in the network that have similar values for one or more metrics but have vastly different values for other metrics. Determination of a path through the network based on values for one metric may yield many possible paths. One possible determination scheme for balancing traffic distribution amongst the possible paths is random selection of one of these paths for routing. However, this may not evenly distribute traffic as the total bandwidth and the available bandwidth for a path may vary among seemingly equivalent paths. Further, randomness may unbalance traffic loads in the network as paths carry different traffic loads.